package com.nowcode.community.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;

/**
 * ClassName: RedisConfig
 * Package: com.nowcode.community.config
 * Description:
 *
 * @Author: 信
 * @Create: 2024/1/25 - 15:35
 */
@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        //加入工厂以后，就具有了访问数据库的能力
        template.setConnectionFactory(factory);

        //TODO 16、配置序列化的方式！！！！！
        //设置key的序列化方式
        template.setKeySerializer(RedisSerializer.string());
        //设置value的序列化方式
        template.setValueSerializer(RedisSerializer.json());
        //设置hash的key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        //设置hash的value的序列化方式
        template.setHashKeySerializer(RedisSerializer.json());

        template.afterPropertiesSet();

        return template;
    }


}
